As the popularity of the Internet and wireless communication continues to grow, network designers and service providers are presented with a number of performance concerns. A particular concern relates to message routing. A message router receives messages from sender hosts and forwards these messages to one or more destination hosts. The process of receiving and sending a message is sometimes called a transaction, and is an important component of any networking architecture. It is not uncommon for a high performance message router to be required to complete hundreds of transactions per second.
Traditional messaging systems use a store-and-forward model for message routing. Under such an approach, when a router receives a message the message is stored to a nonvolatile memory (“NVM”) so that the contents are preserved when there is no power applied to the memory. Examples of NVM include, but are not limited to, electrically erasable programmable read only memory (“EEPROM”) and magnetic disk. Storing the message to NVM enables recovery of the message in the event of a system crash or power failure. Naive techniques for reading from and writing to NVM are relatively slow, and may result in a performance bottleneck in the network.